package Guigu3.Interface;
/*
 * 接口的使用
 * 1、接口使用上也满足多态性
 * 2、接口，实际上就是定义了一种规范
 * 3、开发中，体会面向接口编程
 */
public class InterfaceTest2 {

	public static void main(String[] args) {
		Computer com = new Computer();
		//1、创建了接口的非匿名实现类的非匿名对象
		Flash flash = new Flash();
		com.transformdate(flash);
		//2、创建了接口的非匿名实现类的匿名对象
		com.transformdate(new Flash());
		com.transformdate(new Printer());
		//3、创建了接口的匿名实现类的非匿名对象
		USB phone = new USB() {
				@Override
				public void start() {
					System.out.println("手机开始工作");
				}

				@Override
				public void stop() {
					System.out.println("手机结束工作");
				}
		};
		com.transformdate(phone);
		//4、创建了接口的匿名实现类的匿名对象
		com.transformdate(new USB() {

			@Override
			public void start() {
				System.out.println("MP3开始工作");
			}

			@Override
			public void stop() {
				System.out.println("MP3结束工作");
			}
		});
	}

}

class Computer
{
	public void transformdate(USB usb)//多态性
	{
		usb.start();
		usb.stop();
	}
}
interface USB
{
	void start();//开始工作
	void stop();//结束工作
}

class Flash implements USB
{

	@Override
	public void start() {
		System.out.println("USB开启工作");
	}

	@Override
	public void stop() {
		System.out.println("USB结束工作");
	}
}

class Printer implements USB
{

	@Override
	public void start() {
		System.out.println("打印机开启工作");
	}

	@Override
	public void stop() {
		System.out.println("U盘结束工作");
	}
	
}